/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package laba3;

import java.util.Random;

/**
 *
 * @author Simplevolk
 */
public class lab {

    /**
     * @param args the command line arguments
     *
     *
     * №7
1. Даны вещественные массивы x1,x2,…,xn и y1,y2,…,yn.
     * Преобразовать их по правилу: большее из xi и yi принять в качестве нового значения xi,
     * а меньшее – в качестве нового значения yi.

2. В заданной матрице поменять местами последнюю строку со строкой, содер-жащей наибольший элемент матрицы.
     *
     */

    public static void UseMass(double[] X,double[] Y,int n)
    {double temp;
        for(int i=0;i<n;i++)
        {
           if(Y[i]>X[i])
                {
               temp=X[i];
               X[i]=Y[i];
               Y[i]=temp;
                }

        }
     lab.Vyvod(X, "X");
     lab.Vyvod(Y,"Y");
    }
    public static double Matrix(double[][] X,int n)
    {

  // 2. В заданной матрице поменять местами последнюю строку со строкой, содер-жащей наибольший элемент матрицы.
    double temp,tempi,max;
    int Nmax = 0;
    double[] strings=new double[n];
    double[][] Xold=new double[n][n];
    /*
     *
     * Алгоритм решения этой задачи следующий: для каждого столбца матрицы находим максимальный элемент и его номер,
     номер максимального элемента j-го столбца матрицы записываем в j-й элемент массива P.
     */
    for(int l=0;l<n;l++)
        System.arraycopy(X[l], 0, Xold[l], 0, n);
    
    for(int j=0;j<n;j++)
    {
    max=X[1][j];
    Nmax=0;
        for(int i=0;i<n;i++)
        {
            if(X[i][j]>max)
            {
              max=X[i][j];
              Nmax=i;
            }

           // maxi[j]=Nmax;
            
        }
 
 
    }
    max=X[1][1];
for (int i=0; i<n;i++)
{
for(int j=0;j<n;j++)
    {
    if(X[i][j]>max)
        {
        max=X[i][j];
    System.out.println(max);
        }
    }
    
    
    // меняем строки матрицы
    
    
    
    //lab.Vyvod(Xold,"Xold");
    
  //  {---max---}

}
    System.out.println("\n");
    for(int j=0;j<n;j++)
        {double temp1;
            temp1=X[n-1][j];
            X[n-1][j]=X[Nmax][j];
            X[Nmax][j]=temp1;
            System.out.println(X[Nmax][j]+"\t"+X[n-1][j]);
        }

System.out.println("nmax= "+Nmax);
    
return max;
 }

    public static double[][] MyRandom(double[][] Matrix,int n)
    {
        Random random=new Random(n);

        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
            {
                Matrix[i][j]=random.nextDouble();

            }
        }
    return Matrix;
    }
    public static double[] MyRandom(double[] Matrix,int n)
    { Random random=new Random(n);
        for(int i=0;i<n;i++)
        {
        Matrix[i]=random.nextDouble();
        }

        return Matrix;

    }

   public static void Vyvod(double[] X,String Name)
    {
       System.out.println("Vyvod matritsy "+Name+" \n");
        for(int i=0;i<X.length;i++)
        {
        System.out.println(i+" "+X[i]);
        }

    }
   public static void Vyvod(double[][] X,String Name)
    {
    System.out.println("Vyvod matritsy "+Name+" \n");
    for(int i=0;i<X.length;i++)
        for(int j=0;j<X.length;j++)
        {
        System.out.println(i+"\t"+j+"\t"+X[i][j]);


        }
    }
public static void Obnull(double[][] Matritsa,int N)
 {
     for(int i=0;i<N;i++)
         for(int j=0;j<N;j++)
         {
             Matritsa[i][j]=0;
         }
 }
public static void Obnull(double[] Matrix,int N)
 {

     for(int i=0;i<N;i++)

         {
             Matrix[i]=0.000;
         }
 }
    public static void main(String[] args) {
        // TODO code application logic here
        lab lab=new lab();
        int n=100;
        double[] X=new double[n];
        double[] Y=new double[n];
        double[][] Matrix=new double[n][n];
        double[] maxi=new double[n];
        double max;
        lab.Obnull(Matrix, n);
        lab.Obnull(X, n);
        lab.Obnull(Y, n);
        lab.Obnull(maxi, n);

        lab.MyRandom(X, n);
        lab.MyRandom(Y, n);
        lab.MyRandom(Matrix, n);

        lab.UseMass(X, Y, n);
        //lab.Vyvod(X, "X");
        //lab.Vyvod(Y, "Y");
       max=lab.Matrix(Matrix, n);
       System.out.println("max= "+max);

        if(args.length>0)
          {
                if(args[0].equals("first"))
                    {
                    System.out.println(" vypolniaetsia 1-ia zadacha");
                    lab.UseMass(X, Y, n);
                    }
                if(args[0].equals("second"))
                    {
                    System.out.println("vypolniaetsia 2-ia zadacha");
                    lab.Matrix(Matrix, n);
                    }
                
        }
    }

}
